<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    let str = 'abcabcdabcde'
    var lengthOfLongestSubstring = function(s) {
        //substr存入不重复的字符串,maxLength存入长度
        let substr = '', maxLength = 0;
        //循环遍历整个字符串
        for (var i = 0; i < s.length; i++) {
            //indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
            //在substr中查找该字符s[i]首次出现的位置,并保存在findIndex中
            //如果s[i]中的字符串在substr中存在,则会返回它的位置0,1,2,...
            //如果s[i]中的字符串在substr中存在,则会返回-1
            let findIndex = substr.indexOf(s[i]);
            // console.log(findIndex)
            //
            if (findIndex!=-1) {
                    //substring() 方法返回一个字符串在开始索引到结束索引之间的一个子集, 或从开始索引直到字符串的末尾的一个子集。
                //str.substring(indexStart[, indexEnd])
                //indexStart   需要截取的第一个字符的索引，该索引位置的字符作为返回的字符串的首字母。
                //findIndex为当前的在字符串substr中出现的与字符s[i]相同的位置,
                //截取相同的下一个字符开头形成全新的没有重复字符串
                substr = substr.substring(findIndex + 1);
            }
            substr += s[i];
            // console.log(substr)
            if (substr.length > maxLength) {
                maxLength = substr.length;
            }
        }
        return maxLength;
    };
    console.log(lengthOfLongestSubstring(str));
</script>
</body>

</html>
